import axios from 'axios'
import {ElMessage} from "element-plus";
const http = axios.create({
    baseURL:'https://v3pz.itndedu.com/v3pz',
    timeout:10000
})
//添加拦截器
http.interceptors.request.use(function (config){
    const token = localStorage.getItem("pz_token")
    //不需要传递token的api
    const whiteUrl = ['/get/code','/user/authentication','/login']
    if(token&&!whiteUrl.includes(config.url)){
        config.headers['x-token'] = token
    }
    return config
},function (error){
    return Promise.reject(error)
})
//响应拦截器
http.interceptors.response.use(function (response){
    if(response.data.code===-1){
        ElMessage.warning(response.data.message)
    }
    if(response.data.code===-2){
        localStorage.removeItem("pz_token");
        localStorage.removeItem("pz_userInfo")
        window.location.href = window.location.origin
    }
    return response
},function (error){
    /**
     * Promise的含义
     * promise是异步编程的一种解决方法。
     * 所谓promise，简单说是一个容器，里面保存着某个未来才会结束的事件（通常是一个异步操作）的结果，从语法上说，promise是一个对象，从它可以获取异步操作的消息，promise提供了统一的API，各种异步操作都可以用同样的方法进行处理。
     */
    return Promise.reject(error)
})
export default http;
